Loading...
 

Approximation on the mesh with hanging nodes

The problem of approximation on a mesh with hanging nodes is presented in detail in the paper [1].
Now consider the case of a mesh in which we have one large element \( [0,2]\times[1,3] \) and two small elements \( [0,1]\times[0,1] \) and \( [0,1]\times[1,2] \).
The easiest way to construct basis functions on such elements are linear B-spline functions (which de facto correspond to linear Lagrange polynomials).
We obtain them by spanning the node vectors [0 0 1 1 2 2] in the direction of the axis \( x \) and [0 0 1 1] in the direction of the axis \( y \)y, for two small elements, and [0 0 2 2] in the direction of the axis \( x \), and [1 1 3 3] in the direction of the axis \( y \).
Note that our node vectors [0 0 1 1 2 2] and [0 0 1 1] span the following base functions \( B^x_{1;1}(x),B^x_{2;1}(x), B^x_{3;1}(x); B^y_{1;1}(y),...,B^y_{1;2}(y) \) on small elements, which by multiplication (constructing a tensor product) gives two-dimensional basis functions \( B^x_{1;1}(x)B^y_{1;1}(y), B^x_{1,1}(x)B^y_{1;2}(y), B^x_{2;1}(x)B^y_{1;1}(y), B^x_{2,1}(x)B^y_{1;2}(y) \) on the first element, and \( B^x_{2;1}(x)B^y_{1;1}(y), B^x_{2,1}(x)B^y_{1;2}(y), B^x_{3;1}(x)B^y_{1;1}(y), B^x_{3,1}(x)B^y_{1;2}(y) \) on second small element.
Moreover, on a large element our vectors of nodes [0 0 2 2] and [1 1 3 3] span base functions \( B^x_{4;1}(x),B^x_{5;1}(x);B^y_{3;1}(y),...,B^y_{4;2}(y) \). The tensor product of these one-dimensional basis functions gives the following two-dimensional basis functions \( B^x_{4;1}(x)B^y_{3;1}(y), B^x_{4,1}(x)B^y_{4;2}(y), B^x_{5;1}(x)B^y_{3;1}(y), B^x_{5,1}(x)B^y_{4;2}(y) \).
We denote by \( B_1^{small1} \) restricting the base function
\( B^x_{1;1}(x)B^y_{2;1}(y) \) to the common edge on the first small element Fig. 1, and by \( B_1^{small2} \) restricting the base function \( B^x_{2;1}(x)B^y_{2;1}(y) \) to the common edge on the second small element Fig. 1.
We denote by \( B_1^{big} \) restricting the base function \( B^x_{4;1}(x)B^y_{3;1}(y) \) to the common edge on the big element Fig. 1.
Let us denote by \( B_2^{small1} \) restricting the base function \( B^x_{2;1}(x)B^y_{2;1}(y) \) to the common edge on the first element Fig. 2, and przez \( B_2^{small2} \) narrowing the base function \( B^x_{3;1}(x)B^y_{2;1}(y) \) to the common edge on the second element Fig. 2.
Let us also denote by \( B_2^{big} \) restricting the base function \( B^x_{5;1}(x)B^y_{3;1}(y) \) to a common edge on a large element Fig. 2.

The first large and the first two small base functions on the edge of one large and two small broken elements.
Figure 1: The first large and the first two small base functions on the edge of one large and two small broken elements.
The second large and the next two small base functions on the edge of one large and two small broken elements.
Figure 2: The second large and the next two small base functions on the edge of one large and two small broken elements.

The problem then arises: if we want to approximate some continuous function (for example a temperature scalar field) over such a grid, our approximation should be continuous. In the case of groups of elements of uniform size, the B-spline basis functions span naturally across many elements, and the approximation at element boundaries is naturally continuous. In the case of elements divided into smaller elements that share edges with a larger element, as in our case, we have a number of local functions on large and small elements that are not glued together over the edge, and they have different plots above the shared edge.
The vertex between two small elements on a common edge, located in the middle of a large element, is called a hanging node or a constrained node. This is because the basis functions that span over it on small elements must be used to adjust the approximation to a large basis function on a large element. How do we do this "adjustment"?
In our case, we use local basis functions on small elements to map corresponding large basis functions on large elements.
In our case, we just need to map the functions \( B_1^{big}(x,y) \) by a linear combination of functions \( B_1^{small1}(x,y),B_1^{small2}(x,y),B_2^{small1}(x,y),B_2^{small2}(x,y) \). In other words, we need to find such coefficients \( b_1^{small1},b_1^{small2},b_2^{small1},b_2^{small2} \) żeby \( B_1^big(x,y) =b_1^{small1}B_1^{small1}(x,y)+b_1^{small2}B_1^{small2}(x,y)+b_2^{small1}B_2^{small1}(x,y)+b_2^{small2}B_2^{small2}(x,y) \), dla \( x\in(0,2)y=1 \) i.e. stretched on a common edge This process is illustrated in Fig. 3. You can see here that this combination is \( B_1^big(x,y) =1.0*B_1^{small1}(x,y)+0.5*B_1^{small2}(x,y)+0.5*B_2^{small1}(x,y) \), czyli 1.0, 0.5, 0.5, 0.0.
In addition, we need to map the functions \( B_2^{big}(x,y) \) by a linear combination of functions \( B_1^{small1}(x,y),B_1^{small2}(x,y),B_2^{small1}(x,y),B_2^{small2}(x,y) \). In other words, we need to find such coefficients \( c_1^{small1},c_1^{small2},c_2^{small1},c_2^{small2} \) żeby \( B_2^big(x,y) =c_1^{small1}B_1^{small1}(x,y)+c_1^{small2}B_1^{small2}(x,y)+c_2^{small1}B_2^{small1}(x,y)+c_2^{small2}B_2^{small2}(x,y) \), dla \( x\in(0,2)y=1 \) that is, stretched on a common edge. This process is illustrated in Fig. 4. We can see tere That this combination is \( B_2^big(x,y) =0.5*B_1^{small2}(x,y)+0.5*B_2^{small1}(x,y)+1.0*B_2^{small2}(x,y)+ \), czyli 0.0, 0.5, 0.5, 1.0.

The first big base function obtained by merging small base functions.
Figure 3: The first big base function obtained by merging small base functions.

The second large basis function obtained by merging small basis functions.
Figure 4: The second large basis function obtained by merging small basis functions.

In general, where we have higher order polynomials span over the large and small elements, we can just project the basis functions from the large edge into the small basis functions over two small edges.


Ostatnio zmieniona Środa 29 z Czerwiec, 2022 13:03:43 UTC Autor: Maciej Paszynski
Zaloguj się/Zarejestruj w OPEN AGH e-podręczniki
Czy masz już hasło?

Hasło powinno mieć przynajmniej 8 znaków, litery i cyfry oraz co najmniej jeden znak specjalny.

Przypominanie hasła

Wprowadź swój adres e-mail, abyśmy mogli przesłać Ci informację o nowym haśle.
Dziękujemy za rejestrację!
Na wskazany w rejestracji adres został wysłany e-mail z linkiem aktywacyjnym.
Wprowadzone hasło/login są błędne.